www.gusucode.com > WSTMall PHP网店系统 v1.6.0PHP源码程序 > WSTMall PHP网店系统 v1.6.0/wstmall_v1.6.0_160506/wstmall_v1.6.0_160506/Apps/Home/View/default/js/audio.js

    var g_audio, audio, currAudioId;
//加载声音
function loadAudio(){				
	if((jQuery.browser.msie && (!$.support.leadingWhitespace))){//IE9以下版本
				
	}else{
		if(/i(Phone|P(o|a)d)/.test(navigator.userAgent)){//苹果产品			
			g_audio = window.g_audio = new Audio();
			var g_event = window.g_event =new function(){
			var events = ['load','abort','canplay','canplaythrough','durationchange','emptied','ended','error','loadeddata','loadedmetadata','loadstart','pause','play','playing','progress','ratechange','seeked','seeking','stalled','suspend','timeupdate','volumechange','waiting', 'mediachange'];
				g_audio.loop = false;
				g_audio.autoplay = true;
				g_audio.isLoadedmetadata = false;
				g_audio.touchstart = true;
				g_audio.paused = true;
				g_audio.audio = true;
				g_audio.elems = {};
				g_audio.isSupportAudio = function(type){
					type=type||"audio/mpeg";
					try{
						var r=g_audio.canPlayType(type);
						return g_audio.canPlayType&&(r=="maybe"||r=="probably")
					}catch(e){return false;}
				};
				g_audio.push = function(meta){						
					g_audio.previousId = g_audio.id;
					g_audio.id = meta.song_id;
					g_audio.previousSrc = g_audio.src;
					g_audio.previousTime = 0.00;
					g_audio.src = g_audio.currentSrc = meta.song_fileUrl;
					g_audio.isLoadedmetadata = false;
					g_audio.autobuffer = true;
					g_audio.load();
					g_audio.play();						
				};

				for(var i = 0, l = events.length; i < l; i++){
					(function(e){
						var fs = [];
						this[e] = function(fn){
							if(typeof fn!== 'function'){
								for (var k = 0; k<fs.length; k++){
									fs[k].apply(g_audio);
								}
								return ;
							}
							fs.push(fn);
							g_audio.addEventListener(e, function(){
								fn.apply(this);
							});
						};
					}).apply(this, [events[i]]);
				}					
				this.load(function(){						
					this.pause();
					this.play();
				});
				this.loadeddata(function(){
					this.pause();
					this.play();
				});
				this.loadedmetadata(function(){
					this.isLoadedmetadata = true;
				});
				this.ended(function(){});
			};				
		}else{//支付html5播放	
			createAudio();
		}
	}
}

//创建html5播放器
function createAudio(){
	if(document.getElementById('soundplay')){
		document.body.removeChild(document.getElementById('soundplay'));
	}
	audio = document.createElement("audio");
	document.body.appendChild(audio);
	for(var j=0;j<2;j++){
		var sour = document.createElement("source");		
		sour.src=ThinkPHP.DOMAIN+"/Apps/Home/View/default/audio/sound"+(j==0?".mp3":".ogg");					
		if(sour.src.indexOf('.ogg')>-1){
			sour.type = 'audio/ogg';
		}else{
			sour.type = 'audio/mpeg'; 
		}
		audio.appendChild(sour);
	}
	audio.id = 'soundplay';
	audio.type = 'audio/x-mpeg';
	//audio.addEventListener("canplaythrough", function(){}, false);
	//audio.addEventListener("ended", function(){});//当声音播放完后触发
	return;
}

//播放声音
function playsound(){
	pausesound();
	if((jQuery.browser.msie && (!$.support.leadingWhitespace))){	
		currAudioId = "player";		
		var audio = document.getElementById("player");		
		audio.url = ThinkPHP.DOMAIN+"/Apps/Home/View/default/audio/sound.mp3";		
		audio.controls.play();
		
	}else if(/i(Phone|P(o|a)d)/.test(navigator.userAgent)){		
		currAudioId = "soundplay";
		g_audio.push({song_id:"soundplay",song_fileUrl:"audio/sound.mp3"});	
	}else{		
		currAudioId = "soundplay";
		audio = document.getElementById("soundplay");		
		try {			
			if(audio.currentTime)audio.currentTime = 0;			
			audio.play();			
		} catch (e) { }		
	}	
}
//停止播放
function pausesound(){	
	if(/i(Phone|P(o|a)d)/.test(navigator.userAgent)){		
		g_audio.pause();
	}else{		
		try {
			if(jQuery.browser.msie && (!$.support.leadingWhitespace)){
				audio = document.getElementById("player");
				if(audio)audio.controls.stop();
			}else{
				audio = document.getElementById("soundplay");	
				if(audio)audio.pause();
			}		
		} catch (e) { }		
	}	
}